package com.wondertek.poms.service.controller;

import com.wondertek.poms.common.vo.ResultBean;
import com.wondertek.poms.core.service.IFirstProductInfoPackageService;
import com.wondertek.poms.core.service.IPrdContService;
import com.wondertek.poms.dao.po.FirstProductInfoPackage;
import com.wondertek.poms.dao.vo.TreeVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author gaozhengxing
 * @description 一级产品controller
 */
@Api(value = "FirstProductInfoPackageController", description = "一级产品 接口")
@Slf4j
@RestController
@RequestMapping(value = "/pc-product-first")
public class FirstProductInfoPackageController {

	@Autowired
	private IFirstProductInfoPackageService firstProductInfoPackageService;
	@Autowired
	private IPrdContService prdContService;
	/**
	 *
	 * @return 一级产品 全量列表
	 */
	@ApiOperation(value = "一级产品 全量列表", notes = "所有一级产品")
	@GetMapping("/list/all")
	public ResultBean listAll() {
		return ResultBean.ok(firstProductInfoPackageService.findAll());
	}

	/**
	 *
	 * @return 一级产品 全量列表
	 */
	@ApiOperation(value = "一级产品 全量列表", notes = "所有一级产品")
	@GetMapping("/list")
	public ResultBean list() {
		return ResultBean.ok(firstProductInfoPackageService.findAll());
	}

	/**
	 *
	 * @return 一级产品 poms全量列表
	 */
	@ApiOperation(value = "产品展现 一级产品列表查询", notes = "产品展现 一级产品列表查询")
	@GetMapping("/list-for-prd-info")
	public ResultBean listForPrdInfo() {
		return ResultBean.ok(firstProductInfoPackageService.findPomsAll());
	}

	/**
	 *
	 * @return 一/二级产品 加商品包 poms全量列表
	 */
	@ApiOperation(value = "产品展现 一级产品列表查询", notes = "产品展现 一级产品列表查询")
	@GetMapping("/list-prd-info-cont")
	public ResultBean listPrdInfoCont() {
		List<TreeVo> list =null;
		try {
			list = prdContService.findPrdAndCont();
		}catch (Exception e){
			ResultBean.error(e.toString());
		}
		return ResultBean.ok(list);
	}


	/**
	 *
	 * @return 一级产品 查询列表
	 */
	@ApiOperation(value = "一级产品条件查询列表", notes = "一级产品条件查询列表")
	@GetMapping("/list/by-id-name")
	public ResultBean listAllByParam() {
		return ResultBean.ok(firstProductInfoPackageService.findAll());
	}

	/**
	 *新增一级产品
	 *@param  firstProductInfoPackage 一级产品
	 */
	@ApiOperation(value = "新增一级产品", notes = "新增一级产品")
	@PostMapping("/add")
	public ResultBean add(@RequestBody  FirstProductInfoPackage firstProductInfoPackage) {
		FirstProductInfoPackage.putTimeAndUser(firstProductInfoPackage);
		return ResultBean.ok(firstProductInfoPackageService.save(firstProductInfoPackage));
	}

}
